import request from '@/config/axios'

// 跨境电商平台API调用日志 VO
export interface PlatformApiLogVO {
  id: number // 日志编号
  platformId: number // 平台编号
  storeId: number // 店铺编号
  apiConfigId: number // API配置编号
  syncTaskId: number // 同步任务编号
  traceId: string // 链路追踪编号
  apiType: string // API类型
  apiName: string // API名称
  apiEndpoint: string // API端点
  httpMethod: string // HTTP方法
  requestHeaders: string // 请求头
  requestParams: string // 请求参数
  requestBody: string // 请求体
  responseStatus: number // 响应状态码
  responseHeaders: string // 响应头
  responseBody: string // 响应体
  startTime: Date // 开始时间
  endTime: Date // 结束时间
  duration: number // 执行时长（毫秒）
  success: boolean // 是否成功
  errorCode: string // 错误代码
  errorMsg: string // 错误信息
  retryCount: number // 重试次数
  userIp: string // 用户IP
  userAgent: string // 用户代理
}

// 跨境电商平台API调用日志 API
export const PlatformApiLogApi = {
  // 查询跨境电商平台API调用日志分页
  getPlatformApiLogPage: async (params: any) => {
    return await request.get({ url: `/crossborder/platform-api-log/page`, params })
  },

  // 查询跨境电商平台API调用日志详情
  getPlatformApiLog: async (id: number) => {
    return await request.get({ url: `/crossborder/platform-api-log/get?id=` + id })
  },

  // 新增跨境电商平台API调用日志
  createPlatformApiLog: async (data: PlatformApiLogVO) => {
    return await request.post({ url: `/crossborder/platform-api-log/create`, data })
  },

  // 修改跨境电商平台API调用日志
  updatePlatformApiLog: async (data: PlatformApiLogVO) => {
    return await request.put({ url: `/crossborder/platform-api-log/update`, data })
  },

  // 删除跨境电商平台API调用日志
  deletePlatformApiLog: async (id: number) => {
    return await request.delete({ url: `/crossborder/platform-api-log/delete?id=` + id })
  },

  // 批量删除跨境电商平台API调用日志
  deletePlatformApiLogList: async (ids: number[]) => {
    return await request.delete({ url: `/crossborder/platform-api-log/delete-batch`, data: ids })
  },

  // 导出跨境电商平台API调用日志 Excel
  exportPlatformApiLog: async (params) => {
    return await request.download({ url: `/crossborder/platform-api-log/export-excel`, params })
  },
}
